home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 February / EnigmA AMIGA RUN 15 (1997)(G.R. Edizioni)(IT)[!][issue 1997-02][PLANET CD V].iso / enigma / earcd / comm / comm5 / prcssvnt.lha / processevents13 / ProcessEvents13.br next >
Text File  |  1996-11-17  |  17KB  |  611 lines

  1. /* ProcessEvents V1.3 © 1996 Roy Brown <Roy@ebrown.demon.co.uk>
  2.    $VER: ProcessEvents.br 1.3 (17.11.96)
  3.  
  4.    If you do not have Thor installed, this script is of no use to you.
  5.  
  6.    YOU MUST USE THE SUPPLIED INSTALLER® SCRIPT TO INSTALL ProcessEvents
  7.  
  8.    If you do not use the script, then ProcessEvents will not work.
  9.    Please see the AmigaGuide® document for full details.
  10. */
  11.  
  12. /*** There should be no reason to alter anything below here ***/
  13.  
  14. Options results
  15. Options failat 21
  16.  
  17. Signal ON Syntax
  18.  
  19. Vers="ProcessEvents V1.3 ©1996 Roy Brown"
  20. tags="rtez_flags=ezreqf_centertext"
  21. lf='0a'x
  22.  
  23. /* Check for rexxreqtools.library and rexxarplib.library and open them if necessary. */
  24. If ~Exists('Libs:rexxreqtools.library')|~Exists('Libs:rexxarplib.library') Then
  25.   Do
  26.     If Exists('C:RequestChoice') Then
  27.       Do
  28.         Address Command
  29.         'RequestChoice >NIL: "System Information" "ProcessEvents.br Error!*nCannot find required libraries.*nPlease consult ProcessEvents.guide" "Thank You"'
  30.       End
  31.     Exit
  32.   End
  33.  
  34. If ~Show('L','rexxarplib.library') Then
  35.    Addlib('rexxarplib.library',0,-30,3)
  36.  
  37. If ~Show('L','rexxreqtools.library') Then
  38.    AddLib('rexxreqtools.library',0,-30,0)
  39.  
  40. /* Check for configuration file */
  41. If ~Exists('ENV:Thor/ProcessEvents.config') Then
  42.    Do
  43.      Call RTEZREQUEST("ProcessEvents Error"lf||lf||"ENV:Thor/ProcessEvents.config"lf||lf"has not been found"lf||lf,
  44.                       "Please consult the ProcessEvents.guide.","Thank You",Vers,tags)
  45.      Exit
  46.    End
  47.  
  48. /* Read the configuration file */
  49. If Open(config,"ENV:Thor/ProcessEvents.config",r)=1 Then
  50.   n=0
  51.   Do Until EOF(config)
  52.     newvar=ReadLn(config)
  53.     If Left(newvar,3)="***" Then Iterate
  54.     If Left(newvar,3)="** " Then
  55.       Do
  56.         n=n-1
  57.         Leave
  58.       End
  59.     var.n=Upper(Subword(newvar,1,1))
  60.     arg.n=Subword(newvar,2)
  61.     n=n+1
  62.   End
  63.  
  64. Do i=0 To n
  65.   Select
  66.     when var.i="CMDPATH"    Then CmdPath   =arg.i
  67.     when var.i="SYSTEMNAME" then SystemName=arg.i
  68.     when var.i="MAILTYPE"   then MailType  =arg.i
  69.     when var.i="MAILBOX"    then Mailbox   =arg.i
  70.     when var.i="MAXTRIES"   then MaxTries  =arg.i
  71.     when var.i="AUTOPARSE"  then AutoParse =arg.i
  72.     when var.i="LOGOFF"     then LogOff    =arg.i
  73.     when var.i="LINKDOWN"   then LinkDown  =arg.i
  74.     when var.i="EDITOR"     Then Editor    =arg.i
  75.     when var.i="SHOWTEXT"   Then ShowText  =arg.i
  76.     Otherwise
  77.       Do
  78.         Call RTEZREQUEST("Configuration Error"lf||lf||var.i" "arg.i" is an incorrect keyword"lf||lf,
  79.                          "Please check ENV:Thor/ProcessEvents.config.","Thank You",Vers,tags)
  80.         Exit
  81.       End
  82.   End
  83. End
  84.  
  85. CmdPath=Cmdpath"/Bin/"
  86.  
  87. /* Check for BBSRead port. Open if necessary */
  88. If ~Show('P','BBSREAD') Then
  89.   Do
  90.     Address Command
  91.     CmdPath'LoadBBSRead'
  92.     'WaitForPort BBSREAD'
  93.   End
  94.  
  95. /* Define Events waiting to be sent */
  96. EDF_ACTIVE  = '00000000'x   /* Event is active  */
  97. EDF_DELETED = '00000001'x   /* Event is deleted */
  98. EDF_ERROR   = '00000008'x   /* Error with Event */
  99. EDF_FREEZE  = '00000020'x   /* Event is frozen. */
  100.  
  101. EVE_ENTERMSG    = 0       /* Enter message     */
  102. EVE_REPLYMSG    = 1       /* Reply message     */
  103. EVE_JOINCONF    = 2       /* Join conference   */
  104. EVE_RESIGNCONF  = 3       /* Resign conference */
  105. EVE_DOWNLOAD    = 4       /* Download File     */
  106. EVE_UPLOAD      = 5       /* Upload File       */
  107. EVE_CONFLIST    = 6       /* Get conflist      */
  108. EVE_RETRACTMSG  = 13      /* Retract Message   */
  109.  
  110. MNP=0       /* Variable initilisation for parsing */
  111.  
  112. Address bbsread
  113. GETBBSDATA '"'SystemName'"' stem BBSDATA
  114. If RC~=0 Then Call BBSError
  115. BBSPath=bbsdata.bbspath
  116. Newsbox=BBSPath'tcp_tmp/n.0'
  117. If MailType="POP3" Then MailBox=BBSPath'tcp_tmp/m.0'
  118.  
  119. Call Active
  120.  
  121. /* Done everything - Do you want to log off? */
  122. If LogOff="YES" Then
  123.   Call LogOff
  124.  
  125. /* Finished downloading - shall we parse new messages? */
  126. If AutoParse="YES" Then
  127.   Call Parse
  128. Else
  129.   Exit
  130.  
  131. /* Test to see if Mail and/or News waiting to be parsed */
  132. If AutoParse~="YES" Then
  133.   Do
  134.     If LD=1 Then
  135.       Do
  136.         If ~Exists(MailBox)|~Exists(NewsBox) Then
  137.           Call RTEZREQUEST("There are no new Mail or News articles.","_Never Mind",Vers,tags)
  138.         Else
  139.           Call Process
  140.         Exit
  141.       End
  142.   End
  143. Else
  144. If LogOff~="YES" Then
  145.   Exit
  146. Else
  147. If LD=0 Then
  148.    Exit
  149. Else
  150.   Do
  151.     If MNP=0 Then
  152.       Call RTEZREQUEST("There are no new Mail or News articles.","_Never Mind",Vers,tags)
  153.     Else
  154.       Call RTEZREQUEST("New Mail and/or News articles have been"lf,
  155.             "added to the message base automatically"lf,"_Thank You",Vers,tags)
  156.   End
  157. Exit
  158.  
  159. /*** End of Main Code - Function calls follow ***/
  160.  
  161. /* Get details of all active Events */
  162. Active:
  163.  
  164. Total=0
  165. NewsTo=''
  166. MailTo=''
  167. JoinConf=''
  168. ResignConf=''
  169. ConfList=''
  170. RetractMsg=''
  171. Download=''
  172. Upload=''
  173. ActEvents=0
  174.  
  175. Address BBSREAD
  176. GETBBSDATA '"'SystemName'"' stem BBSDATA
  177. If RC~=0 Then Call BBSError
  178. Do num=BBSDATA.FIRSTEVENT To BBSDATA.LASTEVENT
  179.   READBREVENT '"'SystemName'"' EVENTNR num TAGSSTEM eventtag DATASTEM eventdata
  180.   If RC~=0 Then Call BBSError
  181.   If (EVENTDATA.FLAGS=EDF_ACTIVE|EVENTDATA.FLAGS=EDF_ERROR|EVENTDATA.FLAGS=EDF_FREEZE) Then
  182.     Total=Total+1
  183. End
  184.  
  185. If Total~=0 Then
  186.   Do
  187.     If Total=1 Then
  188.       EV="Event"
  189.     Else
  190.       EV="Events"
  191.     Do n=0 to Total
  192.       Event.n=''
  193.     End
  194.   End
  195. n=0
  196.     
  197. If MailType="POP3" Then
  198.   Do
  199.     Buttons1="Do _All|_Send "EV"|Get _Mail|Get _News|Get _Both|_Edit "EV"|_Cancel"
  200.     Buttons2="Get _Both|Get _Mail|Get _News|_Cancel"
  201.   End
  202.   Else
  203.   Do
  204.     Buttons1="Do _Both|Get _News|_Send "EV"|_Edit "EV"|_Cancel"
  205.     Buttons2="Get _News|_Cancel"
  206.   End
  207.   Buttons3="_Parse|_Cancel"
  208.  
  209. Do
  210.   Do num=BBSDATA.FIRSTEVENT To BBSDATA.LASTEVENT
  211.     READBREVENT '"'SystemName'"' EVENTNR num TAGSSTEM eventtag DATASTEM eventdata
  212.     If RC~=0 Then Call BBSError
  213.     Do
  214.       SL=Length(EVENTTAG.SUBJECT)
  215.       If SL>20 Then SL=20
  216.       Subjeck=Left(EVENTTAG.SUBJECT,SL)
  217.       If EVENTDATA.FLAGS=EDF_ACTIVE Then Prefix="[A] "
  218.       If EVENTDATA.FLAGS=EDF_ERROR  Then Prefix="[E] "
  219.       If EVENTDATA.FLAGS=EDF_FREEZE Then Prefix="[F] "
  220.     End
  221.     If (EVENTDATA.FLAGS=EDF_ACTIVE|EVENTDATA.FLAGS=EDF_ERROR|EVENTDATA.FLAGS=EDF_FREEZE) Then
  222.     Do
  223.       ActEvents=ActEvents+1
  224.       If EVENTDATA.EVENTTYPE=EVE_JOINCONF Then
  225.         Do
  226.           Event.n=num Prefix"Join      "EVENTTAG.CONFERENCE
  227.           n=n+1
  228.           JoinConf=JoinConf||Prefix||EVENTTAG.CONFERENCE||lf
  229.           Iterate num
  230.         End
  231.       If EVENTDATA.EVENTTYPE=EVE_RETRACTMSG Then
  232.         Do
  233.           Event.n=num Prefix"Retract   "EVENTTAG.CONFERENCE||" ("EVENTTAG.REFID")"
  234.           n=n+1
  235.           RetractMsg=RetractMsg||Prefix||EVENTTAG.CONFERENCE||" ("EVENTTAG.REFID")"||lf
  236.           Iterate num
  237.         End
  238.       If EVENTDATA.EVENTTYPE=EVE_DOWNLOAD Then
  239.         Do
  240.           Event.n=num Prefix"Download  "EVENTTAG.DIRECTORY||"/"||EVENTTAG.FILENAME
  241.           n=n+1
  242.           Download=Download||Prefix||EVENTTAG.DIRECTORY||"/"||EVENTTAG.FILENAME||lf
  243.           Iterate num
  244.         End
  245.       If EVENTDATA.EVENTTYPE=EVE_UPLOAD Then
  246.         Do
  247.           Event.n=num Prefix"Upload    "EVENTTAG.FILENAME
  248.           n=n+1
  249.           Upload=Upload||Prefix||EVENTTAG.FILENAME||lf
  250.           Iterate num
  251.         End
  252.       If EVENTDATA.EVENTTYPE=EVE_RESIGNCONF Then
  253.         Do
  254.           Event.n=num Prefix"Resign    "EVENTTAG.CONFERENCE
  255.           n=n+1
  256.           ResignConf=ResignConf||Prefix||EVENTTAG.CONFERENCE||lf
  257.           Iterate num
  258.         End
  259.       If EVENTDATA.EVENTTYPE=EVE_CONFLIST Then
  260.         Do
  261.           Event.n=num Prefix"Get Conference List"
  262.           n=n+1
  263.           ConfList=Prefix"Get Conference List"
  264.           Iterate num
  265.         End
  266.       If EVENTTAG.CONFERENCE='EMail' Then
  267.         Do
  268.           Address BBSREAD
  269.           SEARCHBRUSER BBSNAME '"'SystemName'"' STEM sresult SEARCH TOADDR Address
  270.             If RC~=0 Then Call BBSError
  271.             If(result=0) Then
  272.               Event.n=num Prefix"EMAIL     "EVENTTAG.TOADDR" ("Subjeck")"
  273.               n=n+1
  274.               MailTo=MailTo||Prefix||EVENTTAG.TOADDR" ("Subjeck")"lf
  275.             If(result > 0) Then
  276.               Do n=1 To SRESULT.COUNT
  277.                 READBRUSER BBSNAME '"'SystemName'"' USERNR SRESULT.n.USERNR TAGSSTEM USERTAGS
  278.                 If RC~=0 Then Call BBSError
  279.                 Event.n=num Prefix"EMAIL     "USERTAGS.NAME" ("Subjeck")"
  280.                 n=n+1
  281.                 MailTo=MailTo||Prefix||USERTAGS.NAME" ("Subjeck")"lf
  282.               End
  283.         End
  284.     Else
  285.       Do
  286.         NewsTo=NewsTo||Prefix||EVENTTAG.CONFERENCE" ("Subjeck")"lf
  287.         Event.n=num Prefix"Newsgroup "EVENTTAG.CONFERENCE" ("Subjeck")"
  288.         n=n+1
  289.       End
  290.     End
  291.   End
  292.   If MailTo='' Then EM=''
  293.   Else EM=lf"E-MAIL"lf
  294.   If NewsTo='' Then NT=''
  295.   Else NT=lf"NEWSGROUPS"lf
  296.   If JoinConf='' Then JNG=''
  297.   Else JNG=lf"JOIN NEWSGROUP"lf
  298.   If ResignConf='' Then RNG=''
  299.   Else RNG=lf"RESIGN NEWSGROUP"lf
  300.   If RetractMsg='' Then RMS=''
  301.   Else RMS=lf"CANCEL MESSAGE"lf
  302.   If ConfList~='' Then Conflist=lf||ConfList||lf
  303.   If Download='' Then DF=''
  304.   Else DF=lf"DOWNLOAD FILE(S)"lf
  305.   If Upload='' Then UF=''
  306.   Else UF=lf"UPLOAD FILE(S)"lf
  307. End
  308.   
  309. If ActEvents~=0 Then
  310.   Call Mail                  /* Active Events exist */
  311. Else
  312.   Call News                  /* No active Events exist  */
  313. Return
  314.  
  315. /* Edit Events */
  316.  
  317. Edit:
  318.  EditEV=RequestList(0,n,Event,250,250,500,100,,)
  319.  If EditEV='' Then Return
  320.  EditEV#=Subword(EditEV,1,1)
  321.  Prefix=Subword(EditEV,2,1)
  322.  Action=Prefix||Subword(EditEV,4,1)
  323.  Address bbsread
  324.  READBREVENT '"'SystemName'"' EVENTNR EditEV# TAGSSTEM eventtag DATASTEM eventdata
  325.  If RC~=0 Then Call BBSError
  326.  If EVENTDATA.EVENTTYPE=EVE_ENTERMSG|EVENTDATA.EVENTTYPE=EVE_REPLYMSG Then
  327.    Do
  328.      Call RTEZREQUEST("You have selected the following Event for editing:",
  329.                       lf||lf||EditEV||lf,,
  330.         "_Show|_Edit|_Delete|_Freeze|_Activate|_Cancel",Vers,tags)
  331.      If rtresult=0 Then Return
  332.      If rtresult=1 Then Address Command ShowText BBSPATH||EVENTTAG.MSGFILE
  333.      If rtresult=2 Then Address Command Editor BBSPATH||EVENTTAG.MSGFILE
  334.      If rtresult=3 Then UPDATEBREVENT BBSNAME '"'SystemName'"' EVENTNR editev# SETDELETED
  335.      If rtresult=4 Then UPDATEBREVENT BBSNAME '"'SystemName'"' EVENTNR editev# SETFREEZE
  336.      If rtresult=5 Then
  337.        Do
  338.          If EVENTDATA.FLAGS=EDF_ERROR  Then
  339.            UPDATEBREVENT BBSNAME '"'SystemName'"' EVENTNR editev# CLEARERROR
  340.          Else
  341.            UPDATEBREVENT BBSNAME '"'SystemName'"' EVENTNR editev# CLEARFREEZE
  342.        End
  343.      If RC~=0 Then Call BBSError
  344.      Return
  345.    End
  346.  If EVENTDATA.EVENTTYPE=EVE_DOWNLOAD|EVENTDATA.EVENTTYPE=EVE_UPLOAD Then
  347.    Do
  348.      If EVENTDATA.EVENTTYPE=EVE_DOWNLOAD Then FS="download"
  349.      Else FS="upload"
  350.      Call RTEZREQUEST("You have selected the following file for "FS,
  351.                       lf||lf||Action||lf||lf,"_Delete|_Freeze|_Activate|_Cancel",Vers,tags)
  352.      If rtresult=0 Then Return
  353.      If rtresult=1 Then UPDATEBREVENT BBSNAME '"'SystemName'"' EVENTNR editev# SETDELETED
  354.      If rtresult=2 Then UPDATEBREVENT BBSNAME '"'SystemName'"' EVENTNR editev# SETFREEZE
  355.      If rtresult=3 Then UPDATEBREVENT BBSNAME '"'SystemName'"' EVENTNR editev# CLEARFREEZE
  356.      If RC~=0 Then Call BBSError
  357.      Return
  358.    End
  359.  Else
  360.    Do
  361.      Call RTEZREQUEST("You have selected the following Event for editing:",
  362.                       lf||lf||EditEV||lf,"_Delete|_Freeze|_Activate|_Cancel",Vers,tags)
  363.      If rtresult=0 Then Return
  364.      If rtresult=1 Then UPDATEBREVENT BBSNAME '"'SystemName'"' EVENTNR editev# SETDELETED
  365.      If rtresult=2 Then UPDATEBREVENT BBSNAME '"'SystemName'"' EVENTNR editev# SETFREEZE
  366.      If rtresult=3 Then UPDATEBREVENT BBSNAME '"'SystemName'"' EVENTNR editev# CLEARFREEZE
  367.      If RC~=0 Then Call BBSError
  368.    End
  369. Return
  370.  
  371. /* Mail */
  372.  
  373. Mail:
  374. Address command
  375. Call RTEZREQUEST("You have "ActEvents" Thor "EV" waiting:"lf,
  376.                  "[A]=Active : [E]=Error : [F]=Frozen"lf,
  377.                  ||EM||Mailto||NT||NewsTo||RMS||RetractMsg||JNG||JoinConf||RNG,
  378.                  ||ResignConf||DF||Download||UF||Upload||Conflist,Buttons1,Vers,tags)
  379.                  
  380. If MailType="POP3" Then
  381.   Do
  382.     If rtresult=0 Then Exit
  383.     If rtresult=1 Then
  384.       Do
  385.         Call Send                       /* Send events then..*/
  386.         Call GetBoth                    /* Get mail and news(POP3 only) */
  387.         Return
  388.       End
  389.     If rtresult=2 Then Call Send        /* Send events only */
  390.     If rtresult=3 Then Call GetMail     /* Get mail only (POP3) */
  391.     If rtresult=4 Then Call GetNews     /* Get news only */
  392.     If rtresult=5 Then Call GetBoth     /* Get mail and news (POP3 only) */
  393.     If rtresult=6 Then
  394.       Do
  395.         Call Edit
  396.         Call Active
  397.       End
  398.     
  399.   End
  400. Else
  401.   Do
  402.     If rtresult=0 Then Exit
  403.     If rtresult=1 Then
  404.       Do
  405.         Call Send                       /* Send Events... */
  406.         Call GetNews                    /* ...then get News */
  407.       End
  408.     If rtresult=2 Then Call GetNews     /* Get News only */
  409.     If rtresult=3 Then Call Send        /* Send Events only */
  410.     If rtresult=4 Then
  411.       Do
  412.         Call Edit
  413.         Call Active
  414.       End
  415.   End
  416. Return
  417.  
  418. /* News */
  419. News:
  420. Address command
  421. Call RTEZREQUEST("There are no Active Thor Events"lf,Buttons2,Vers,tags)
  422. If MailType="POP3" Then
  423.   Do
  424.     If rtresult=1 Then
  425.       Do
  426.         Call GetBoth                    /* Get mail and News (POP3 only) */
  427.       End
  428.     If rtresult=2 Then Call GetMail     /* Get mail only (POP3) */
  429.     If rtresult=3 Then Call GetNews     /* Get news */
  430.     If rtresult=0 Then Exit
  431.   End
  432. Else
  433.   Do
  434.     If rtresult=0 Then Exit
  435.     If rtresult=1 Then Call GetNews     /* Get news only (SMTP) */
  436.   End
  437. Return
  438.  
  439. /* Send */
  440. Send:
  441. Do post=1 To MaxTries
  442.   Address command
  443.   CmdPath'SendTCP' SystemName 'PUBSCREEN Workbench'
  444.   Address BBSREAD
  445.   GETBBSDATA SystemName stem BBSDATA
  446.   If RC~=0 Then Call BBSError
  447.   IF BBSDATA.NUMEVENTS=0 Then
  448.     Do
  449.       ES=1
  450.       Leave post
  451.     End
  452. ES=2
  453. End
  454. Address command
  455. Return
  456.  
  457. /* Get Mail (POP3 only)*/
  458. GetMail:
  459. Do Fetch=1 To MaxTries
  460.   CmdPath'GetTCP BBSNAME' SystemName 'PUBSCREEN Workbench NONEWS GETONLY DELETE'
  461.   If RC=0 Then
  462.     Do
  463.       GM=1
  464.       Leave Fetch
  465.     End
  466.   GM=2
  467. End
  468. Return
  469.  
  470. /* Get News */
  471. GetNews:
  472. Do Fetch=1 To MaxTries
  473.   CmdPath'GetTCP BBSNAME' SystemName 'PUBSCREEN Workbench NOMAIL GETONLY'
  474.   If RC=0 Then
  475.     Do
  476.       GN=1
  477.       Leave Fetch
  478.     End
  479.   GN=2
  480. End
  481. Return
  482.  
  483. /* Get Mail and News (POP3 only)*/
  484. GetBoth:
  485. Do Fetch=1 To MaxTries
  486.   CmdPath'GetTCP BBSNAME' SystemName 'PUBSCREEN Workbench GETONLY DELETE'
  487.   If RC=0 Then
  488.     Do
  489.       GM=1
  490.       Leave Fetch
  491.     End
  492.   GM=2
  493. End
  494.   If RC=20 Then                  /* If mail or news collection fails..do this */
  495.     Do Fetch=1 To MaxTries
  496.       If ~Exists(Mailbox) Then CmdPath'GetTCP BBSNAME' SystemName 'PUBSCREEN Workbench NONEWS GETONLY DELETE'
  497.       If ~Exists(Newsbox) Then CmdPath'GetTCP BBSNAME' SystemName 'PUBSCREEN Workbench NOMAIL GETONLY'
  498.       If RC=0 Then
  499.         Do
  500.           GM=1
  501.           Leave Fetch
  502.         End
  503.     GM=2
  504.     End
  505. Return
  506.  
  507. /* Mail and News have been dealt with (or not) - Do you wish to log off? */
  508.  
  509. LogOff:
  510. LogOf=lf"  Do you wish to Log Off?  "lf
  511. Success=" collection was successful"lf
  512. NoSuccess=" collection was not successful"lf
  513. Select
  514.   When ES=1 Then ESStr="All Events have been dispatched."lf
  515.   When ES=2 Then ESStr="Sending of Events was not successful"lf
  516.   Otherwise
  517.   ESStr=''
  518. End
  519. Select
  520.   When GN=1 Then GNStr="News"Success
  521.   When GN=2 Then GNStr="News"NoSuccess
  522.   Otherwise
  523.   GNStr=''
  524. End
  525. Select
  526.   When GM=1 Then GMStr="Mail"Success
  527.   When GM=2 Then GMStr="Mail"NoSuccess
  528.   Otherwise
  529.   GMStr=''
  530. End
  531. Select
  532.   When GB=1 Then GBStr="Mail & News"Success
  533.   When GB=2 Then GBStr="Mail & News"NoSuccess
  534.   Otherwise
  535.   GBStr=''
  536. End
  537. LOStr=ESStr||GMStr||GNStr||GBStr||LogOf
  538. Call RTEZREQUEST(LOStr,"_No Way|_Log Off",Vers,tags)
  539. If rtresult=0 Then
  540.   Do
  541. Address Command
  542.     LinkDown
  543.     LD=1
  544.   End
  545. else
  546.  LD=0
  547. Return
  548.  
  549. /* Process: */
  550. Process:
  551. If ~Exists(Mailbox) Then
  552.   Do
  553.     MailStr=""
  554.     AndStr=""
  555.   End
  556. Else
  557.   Do
  558.     MailStr="Mail"
  559.     AndStr=" & "
  560.   End
  561. If ~Exists(Newsbox) Then
  562.   Do
  563.     AndStr=""
  564.     NewsStr=""
  565.   End
  566. Else
  567.   NewsStr="News"
  568.   ParseStr="Parse New "MailStr||AndStr||NewsStr" into MessageBase?"
  569.   Call RTEZREQUEST(ParseStr,Buttons3,vers,tags)
  570.   If rtresult=1 Then
  571.     Call Parse
  572. Return
  573.  
  574. /* Parse: */
  575. Parse:
  576. Address command
  577.   If MailType="POP3" Then
  578.     Do
  579.       If Exists(Mailbox)|Exists(Newsbox) Then
  580.         Do
  581.           CmdPath'GetTCP BBSNAME' SystemName 'PUBSCREEN Workbench PARSEONLY'
  582.           MNP=1
  583.         End
  584.     End
  585.   Else
  586.     Do
  587.       If Exists(Newsbox) Then
  588.         Do
  589.           CmdPath'GetTCP BBSNAME' SystemName 'PUBSCREEN Workbench NOMAIL PARSEONLY'
  590.           MNP=1
  591.         End
  592.       If Exists(Mailbox) Then
  593.         Do
  594.           CmdPath'ParseUUCP BBSNAME' SystemName 'GRAB' mailbox 'PUBSCREEN Workbench ARCHIVE DELETE'
  595.           MNP=1
  596.         End
  597.     End
  598. Return
  599.  
  600. Syntax:
  601.   Call RTEZREQUEST("A syntax error occurred."lf,
  602.        "Error ID "RC" in line "SIGL||lf,
  603.        '"'ErrorText(RC)'"',"_Exit",vers,tags)
  604.   Exit
  605. Return
  606.  
  607. BBSError:
  608.   Call RTEZREQUEST("BBSREAD ERROR"lf||BBSREAD.LASTERROR,"_EXIT",Vers,tags)
  609.   Exit
  610. Return
  611.